/**
 * GTViewController.m
 *
 * The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy of the License 
 * at http://www.mozilla.org/MPL/
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
 * either express or implied. See the License for the specific language governing rights and limitations 
 * under the License.
 *
 * The Original Code is gcast-toolbox4iphone.
 *
 * The Initial Developers of the Original Code is Giannandrea Castaldi.
 */

#import "GTViewController.h"
#import "GTActivityNotifier.h"

@interface GTViewController ()
@end

@implementation GTViewController

- (void)dealloc {
  [taskQueue cancelAllOperations];
  [taskQueue release];
  [super dealloc];
}

- (NSOperationQueue*)taskQueue {
  if (!taskQueue) {
    @synchronized(self) {
      if (!taskQueue) {
        taskQueue = [[NSOperationQueue alloc] init];
        [taskQueue setMaxConcurrentOperationCount:1];
      }
    }
  }
  return taskQueue;
}

- (void)notifyStartActivityWithAlpha:(CGFloat)alpha message:(NSString*)aMessage activity:(void (^)(void))block {
  [GTActivityNotifier notifyStartActivityWithAlpha:alpha];
  [GTActivityNotifier notifyMessage:aMessage];
  [self.taskQueue addOperationWithBlock:^{
    block();
    [GTActivityNotifier notifyEndActivity];
  }];
}

@end
